


* Replication Syntax for Additional Analyses in Appendix 5 of
* "How "'Us' and 'Them' Relates to Voting Behavior - Social Structure, Social Identities, and Electoral Choice" 
* by Simon Bornschier, Silja Häusermann, Delia Zollinger and Céline Colombo
* 2021 Comparative Political Studies

* Analyses done with Stata/SE 15.1 for Mac


* Political Action Study

File Manifest for ICPSR 7777

Barnes, Samuel H., and Max Kaase. Political Action: An Eight Nation Study,
1973-1976. ICPSR07777-v1. Ann Arbor, MI: Inter-university Consortium for
Political and Social Research [distributor], 2006-04-05.
http://doi.org/10.3886/ICPSR07777.v1

use ".../Political_Action_ICPSR_07777/DS0001/07777-0001-Data.dta"

* Recoding

* Country variable
tab V4
* Labels:
* 1483  1.  BRITAIN
* 2307  2.  GERMANY
* 1201  3.  NETHERLANDS
* 1585  4.  AUSTRIA
* 1719  5.  UNITED STATES
* 1779  6.  ITALY
* 1290  7.  SWITZERLAND
* 1224  8.  FINLAND
rename V4 country
la de country 1 Britain 2 Germany 3 Netherlands 4 Austria 5 US 6 Italy 7 Switzerland 8 Finland
la val country country

* Exclude US respondents
drop if country==5

* Select adult respondents
drop if V148==1

* Filter by participation in last elections
g part=V121
recode part 1=1 2=0 *=.
la de part 0 no 1 yes
la val part part
la var part "participation"

keep if part==1

*********************
* Vote for the left *
*********************
* Refers to major party of the left - without minor Communist or revolutionary parties, excluding small parties that could be New Left, i.e. POCH in CH.
* Italy: PCI + PSI combined
* Step 1: Generate vote choice variable without dk/na
gen vote=V122
recode vote 0 97 98 99=.

gen left=0
replace left=1 if (vote==2 & country==1)
replace left=1 if (vote==1 & country==2)
replace left=1 if (vote==1 & country==3)
replace left=1 if (vote==1 & country==4)
replace left=1 if (inlist(vote,2,4) & country==6)
replace left=1 if (vote==9 & country==7)
replace left=1 if (vote==3 & country==8)




***************************
* Class identity variable *
***************************

* V123: Do you ever think of yourself as belonging to a particular social class?
* V124: Which class is that? (If R does not think of himself as belonging, choice worker/middle/upper middle prompted)

* Working class identity
gen class_id=V124
recode class_id 0 7 8 9=.

gen worker=0
replace worker=1 if class_id==1





*******************************************************
*** Operationalization of objective class memebership *
*******************************************************

**** HEAD OF HOUSEHOLD
*hh: only whether or not respondent is head of household
g hh=V231
recode hh 1=1 2=4 *=.
la de hh 1 respondent 2 partner 3 "father, mother" 4 other
la val hh hh
la var hh "head of household"

**** SOCIAL CLASS
* 'sector' cannot be computed: no information on private/public distinction

*the variable 'statushh' will be renamed 'status' only when class is construced. the syntax for isco codes requires a
*different variable also called 'status'
* Swiss survey: V407
g statushh=V232
recode statushh 1=1 2=2 *=.
replace statushh=3 if inlist(V232,6,7,8,9)
*there are a few deviations between statusr and status when R is head of household: I use the R's info:
*replace statushh=statusr if hh==1
la val statushh status
la var statushh "employment status, past or present, head of household"

g isco=V233
g status=statushh
recode status 2=3 3=.

g class=.
for num 10/14 20/43 50/54 77 80/84 90 110 163: replace class=7 if isco==X
for num 60/76 79 130/135 139/141 149/151 159/162 170/173 175 179 180 190/195: replace class=8 if isco==X
for num 120/122 129 174 199: replace class=6 if isco==X
replace class=2 if isco==199 & status==3

for num 200/202 210/212 219: replace class=6 if isco==X

for num 300 310 320/322 330 331 339/342 350/352 359 360 370 380 390/395 399: replace class=6 if isco==X
for num 320/322 331 339 341 350 359 360 380 390/395 399: replace class=5 if isco==X & status==1
for num 320/322 330 331 339 341 350/352 359 360 370 380 390/395 399: replace class=2 if isco==X & status==3
replace class=3 if isco==370 & (status==1 | status==2)
for num 340 342: replace class=7 if isco==X

for num 400 410 420/422 430/432 440/443 450/452 490: replace class=6 if isco==X
for num 400 410 420/422 430/432 440/443 450 451 490: replace class=2 if isco==X & status==3
for num 450/452 490: replace class=5 if isco==X & status==1
replace class=5 if isco==452 & status==3

for num 500 510 520: replace class=6 if isco==X
for num 510 520 530/532 540 550/552 560 570 580/582 589/592 599: replace class=2 if isco==X & status==3
for num 532 540 550/552 560 580 589: replace class=3 if isco==X & (status==1 | status==2)
for num 531 570 581 582 592: replace class=4 if isco==X & (status==1 | status==2)
for num 530 590 591 599: replace class=5 if isco==X & status==1 \ replace class=6 if isco==X & status==2

replace class=1 if isco==600
for num 610/612 620/632 640 641 649: replace class=1 if isco==X & status==3 \ replace class=3 if isco==X & (status==1 | status==2)
replace class=2 if isco==632 & status==3

for num 700 710/713 720/734 740/745 749/756 759/762 770/783 789/796 799/803 810/812 819 820 830/835 839/844 849/857 859 870/874 880 890/895 899/902 910 920/927 929/931 939/943 949/957 959/961 969/974 979/986 989: replace class=2 if isco==X & status==3
for num 860/862: replace class=7 if isco==X
for num 990 999: replace class=3 if isco==X
for num 728 730/734 750/756 759 770/772 774 775 777/783 789 799 812 853 890/893 899/902 910 922 927 939 942 943 949 951/953 957 970 971 979/981 984/986 989: replace class=3 if isco==X & (status==1 | status==2)
for num 700 710/713 720/727 729 740/745 749 760/762 773 776 790/796 800/803 810 811 819 820 830/835 839/844 849/852 854/857 859 870/874 880 894 895 920 921 923/926 929 930 931 940 941 950 954/956 959/961 969 972/974 982 983: replace class=4 if isco==X & (status==1 | status==2)

replace class=99 if class==. & isco~=.

drop isco status
replace class=9 if class==99
rename statushh status

la de class 1 farmer 2"self-employed" 3"unskilled worker" 4"skilled worker" 5"routine non-manual worker" 6 manager 7"technical specialist" 8"social-cultural specialist" 9"non labor-force participant"
la val class class
la var class "social class, head of household"

**** DUMMIES FOR SOCIAL CLASS (HHH)
for num 1/9: g classX=0 if class~=. \ replace classX=1 if class==X

label var class1 farmer
label var class2 "self-employed"
label var class3 "unskilled worker"
label var class4 "skilled worker"
label var class5 "routine non-manual"
label var class6 manager
label var class7  "technical specialist"
label var class8 "socio-cultural spec"
label var class9 "non-labor-force part"




***********************
* REGRESSION ANALYSIS *
***********************

logistic left worker

* Predicted probabilities
prvalue, x(worker=1)
prvalue, x(worker=0)

logistic left worker class3 class4
prvalue, x(worker=1)
prvalue, x(worker=0)





